Data processing systems used for complex real-time control systems, for example, automotive and robotics control systems, are requiring finer control, faster system response, and more input/output (I/O) capability. As a result, the need for more, faster, and improved input/output (I/O) processing by the data processing system has grown significantly. Microcomputers are expected to provide higher resolution outputs, both digital and analog, for more accurate control. For higher frequency control functions, the central processing unit (CPU) may not be capable of responding at the rate needed, due to processing overhead. A solution is needed which provides more, faster, and improved I/O processing capability without overburdening the CPU.
In addition, microcomputers are required to be very flexible in order to accommodate a wide variety of applications. In microcomputers of the past, flexibility in I/O processing has been provided through central processing unit (CPU) software which operates on ports or simple timer channels. Analog and digital I/O were linked through CPU software as well. However, I/O bandwidth was sacrificed primarily due to system overhead since the CPU was involved in all I/O. Thus, a solution is needed which provides both flexibility and increased I/O capability.